perm filename ERRATA.TEX[WEB,ALS] blob sn#661604 filedate 1982-06-07 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\input webhdr
C00010 ENDMK
C⊗;
\input webhdr
\output{\page}
% Here is TEX material that gets inserted after \input webhdr
\def\hang{\hangindent 3em\ \unskip\!}
\def\TEX{\hbox{T\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
\font b=cmr9 \def\mc{\:b} % medium caps for names like PASCAL
\def\PASCAL{{\mc PASCAL}}
\def\pb{$\.|\ldotsm\.|$} % pascal brackets (|...|)
\def\v{\.{\char'174}} % vertical (|) in typewriter font
\def\RA{\mathrel{\char'441}} % right arrow
\def\BA{\mathrel{\char'444}} % double arrow
\def\at{@} % at sign for control texts
\def\({} % kludge for alphabetizing certain module names

\font D=cmtt at 15truept % font used in the title line below (only)
\font E=cmr7 at 14truept % font used in the title line below (only)

\ctrline{\:D WEB version 0.9 Errata}

\vfill
Version 0.9 is bedeviled with more than it share of errors.  Most of these
are fairly trivial and will be obvious to the reader
but here are two changes that should be noted:

\vfill
Module 67 of WEAVE has been modified and should read:
\M67. Procedure \\{prime\_the\_change\_buffer} sets \\{change\_buffer} in
preparation
for the next matching operation. Since blank lines in the change file are
not used for matching, we have $\\{change\_limit}=0$ if and only if the
change file is exhausted.

\Y\P\4\&{procedure}\1\  \37\\{prime\_the\_change\_buffer};\6
\4\&{label} \37\\{restart};\6
\4\&{var} \37\|k: \37$0\to\\{buf\_size}$;\C{index into the buffers}\6
\\{nonblank}: \37\\{boolean};\C{is there a nonblank character on the change
line?}\2\6
\&{begin} \37\\{restart}: \37\&{if} $\\{input\_ln}(\\{change\_file})$ \1\&
{then}\6
\&{begin} \37$\\{buffer}[\\{limit}]\K\.{"\ "}$;\5
$\\{nonblank}\K\\{false}$;\6
\&{for} $\|k\K0\mathrel{\&{to}}\\{limit}$ \1\&{do}\6
\&{begin} \37$\\{change\_buffer}[\|k]\K\\{buffer}[\|k]$;\6
\&{if} $\\{buffer}[\|k]\I\.{"\ "}$ \1\&{then}\5
$\\{nonblank}\K\\{true}$;\2\6
\&{end};\2\6
\&{if} $\R\\{nonblank}$ \1\&{then}\5
\&{goto} \37\\{restart};\C{ignore blank lines between changes}\2\6
$\\{change\_limit}\K\\{limit}$;\6
\&{end}\6
\4\&{else} \&{begin} \37$\\{change\_buffer}[0]\K0$;\5
$\\{change\_limit}\K0$;\6
\&{end};\2\6
\&{end};\par

\vfill
Module 120  in TANGLE has been similarly modified and should read:
\M120. Procedure \\{prime\_the\_change\_buffer} sets \\{change\_buffer} in
preparation
for the next matching operation. Since blank lines in the change file are
not used for matching, we have $\\{change\_limit}=0$ if and only if the
change file is exhausted.

\Y\P\4\&{procedure}\1\  \37\\{prime\_the\_change\_buffer};\6
\4\&{label} \37\\{restart};\6
\4\&{var} \37\|k: \37$0\to\\{buf\_size}$;\C{index into the buffers}\6
\\{nonblank}: \37\\{boolean};\C{is there a nonblank character on the change
line?}\2\6
\&{begin} \37\\{restart}: \37\&{if} $\\{input\_ln}(\\{change\_file})$ \1\&
{then}\6
\&{begin} \37$\\{buffer}[\\{limit}]\K\.{"\ "}$;\5
$\\{nonblank}\K\\{false}$;\6
\&{for} $\|k\K0\mathrel{\&{to}}\\{limit}$ \1\&{do}\6
\&{begin} \37$\\{change\_buffer}[\|k]\K\\{buffer}[\|k]$;\6
\&{if} $\\{buffer}[\|k]\I\.{"\ "}$ \1\&{then}\5
$\\{nonblank}\K\\{true}$;\2\6
\&{end};\2\6
\&{if} $\R\\{nonblank}$ \1\&{then}\5
\&{goto} \37\\{restart};\C{ignore blank lines between changes}\2\6
$\\{change\_limit}\K\\{limit}$;\6
\&{end}\6
\4\&{else} \&{begin} \37$\\{change\_buffer}[0]\K0$;\5
$\\{change\_limit}\K0$;\6
\&{end};\2\6
\&{end};\par

\vfill

Changes have also been made 1) to allow ``change files'' to contain
comment lines that begin with \%\ and that are not used as ``lines to be
matched'' and 2) to allow ``{\tt @z}'' to appear in limbo so that one can make
changes to limbo material.

Note that Appendix F is missing material. This appendix is in process of
change for \TEX 82.

\vfill
{\noindent June 7, 1982}

\end

1) Appendix C has a line beginning '{2}{4}...', but that's not part of any of
	modules 49--53. (This line is missing the three dots below, too.)
	The same comment goes for the lines beginning 'TOKPTR...', '{31}PR...',
	and 'TOKSTART...'.  Also, the code shown is for modules 49--56.
2) TANGLE modules 121, 126 and WEAVE 68, 73 include comments that should have
	had double-arrows, but actually have an ft ligatures.
3) WEAVE module 8 has a comment 'long←buf←size = buf←size + longest←name',
	but that's not true in the code.
4) WEAVE module 131 has a table with a few cases of items in the left column
	that crash into items in the right column.
5) The 'prime the change buffer' procedure should be changed to skip over
	lines containing only spaces, rather than just skipping lines with
	no characters at all (since some systems don't support variable
	length lines).
6) Appendix F is missing material. This appendix is in process of change
for \TEX 82. The version on tape is correct for the present.
7) Page 58 is smeared.
8) The index to WEAVE should include things like "\X", "\C", etc.

	-drf
-------